package cn.lkk.samples.lang.inheritance;

import java.util.Date;

/**
 * 演示变长方法参数
 */
public class VairableParameters {
    public static void main(String[] args) {
        Integer intv = 1;
        Date date = new Date();
        String str = "hello";

        //调用变长数组
        print1(intv, date, str);
        //实际上会编译器创建一个数组，并使用给定参数初始化
        print2(new Object[]{intv, date, str});
    }

    /**
     * 变长参数
     */
    public static void print1(Object... args) {
        for (Object obj : args) {
            System.out.println(obj);
        }
    }

    /**
     * 上一个函数实际上会被编译为以下函数
     */
    public static void print2(Object[] args) {
        for (Object obj : args) {
            System.out.println(obj);
        }
    }
}
